# coding=utf-8
response_error = {
    "100": "继续。",
    "101": "切换协议。",
    "200": "确定。客户端请求已成功。",
    "201": "已创建。",
    "202": "已接受。",
    "203": "非权威性信息。",
    "204": "无内容。",
    "205": "重置内容。",
    "206": "部分内容。",
    "301": "对象已永久移走，即永久重定向。",
    "302": "对象已临时移动。",
    "304": "未修改。",
    "307": "临时重定向。",
    "401.1": "登录失败。",
    "401.2": "服务器配置导致登录失败。",
    "401.3": "由于ACL对资源的限制而未获得授权。",
    "401.4": "筛选器授权失败。",
    "401.5": "ISAPI/CGI应用程序授权失败。",
    "401.7": "访问被Web服务器上的URL授权策略拒绝。这个错误代码为IIS6.0所专用。",
    "403": "禁止访问：IIS定义了许多不同的403错误，它们指明更为具体的错误原因：",
    "403.1": "执行访问被禁止。",
    "403.2": "读访问被禁止。",
    "403.3": "写访问被禁止。",
    "403.4": "要求SSL。",
    "403.5": "要求SSL128。",
    "403.6": "IP地址被拒绝。",
    "403.7": "要求客户端证书。",
    "403.8": "站点访问被拒绝。",
    "403.9": "用户数过多。",
    "403.10": "配置无效。",
    "403.11": "密码更改。",
    "403.12": "拒绝访问映射表。",
    "403.13": "客户端证书被吊销。",
    "403.14": "拒绝目录列表。",
    "403.15": "超出客户端访问许可。",
    "403.16": "客户端证书不受信任或无效。",
    "403.17": "客户端证书已过期或尚未生效。",
    "403.18": "在当前的应用程序池中不能执行所请求的URL。这个错误代码为IIS6.0所专用。",
    "403.19": "不能为这个应用程序池中的客户端执行CGI。这个错误代码为IIS6.0所专用。",
    "403.20": "Passport登录失败。这个错误代码为IIS6.0所专用。",
    "404": "未找到。",
    "404.0": "（无）–没有找到文件或目录。",
    "404.1": "无法在所请求的端口上访问Web站点。",
    "404.2": "Web服务扩展锁定策略阻止本请求。",
    "404.3": "MIME映射策略阻止本请求。",
    "405": "用来访问本页面的HTTP谓词不被允许（方法不被允许）",
    "406": "客户端浏览器不接受所请求页面的MIME类型。",
    "407": "要求进行代理身份验证。",
    "412": "前提条件失败。",
    "413": "请求实体太大。",
    "414": "请求URI太长。",
    "415": "不支持的媒体类型。",
    "416": "所请求的范围无法满足。",
    "417": "执行失败。",
    "423": "锁定的错误。",
    "500": "内部服务器错误。",
    "500.12": "应用程序正忙于在Web服务器上重新启动。",
    "500.13": "Web服务器太忙。",
    "500.15": "不允许直接请求Global.asa。",
    "500.16": "UNC授权凭据不正确。这个错误代码为IIS6.0所专用。",
    "500.18": "URL授权存储不能打开。这个错误代码为IIS6.0所专用。",
    "500.100": "内部ASP错误。",
    "501": "页眉值指定了未实现的配置。",
    "502": "Web服务器用作网关或代理服务器时收到了无效响应。",
    "502.1": "CGI应用程序超时。",
    "502.2": "CGI应用程序出错。application.",
    "503": "服务不可用。这个错误代码为IIS6.0所专用。",
    "504": "网关超时。",
    "505": "HTTP版本不受支持。",
}

operate_error = {
    0: u'运行成功',
    20001: u'应用内部错误',
    20002: u'参数错误'
}


class AppError(object):
    """应用错误"""
    
    class Success(object):
        code = 0
        info = '运行成功'
    
    class InternalError(object):
        code = 20001
        info = '应用内部错误'
    
    class InvalidParams(object):
        code = 20002
        info = '参数错误'


class Errorquery(object):
    def __init__(self, msg):
        self.msg = msg
    
    def __str__(self):
        return str(self.msg)
